System and method to control a three-dimensional (3d) printing device

ABSTRACT

A method includes obtaining first model data specifying a first three-dimensional (3D) model of a first object and obtaining second model data specifying a second 3D model of a second object. The first model data indicates a location of the first 3D model relative to a model space and the second model data indicates a location of the second 3D model relative to the model space, where the second 3D model intersects the first 3D model in the model space. The method further includes processing the first model data and the second model data to generate machine instructions executable by a 3D printing device to generate a physical model of the first object, the physical model defining a void region to receive a physical instance of the second object.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional Patent Application No. 62/208,222, filed Aug. 21, 2015 and entitled “Closed-Loop 3D Printing Incorporating Sensor Feedback,” U.S. Provisional Patent Application No. 62/340,389, filed May 23, 2016 and entitled “SYSTEM AND METHOD TO CONTROL A THREE-DIMENSIONAL (3D) PRINTER,” U.S. Provisional Patent Application No. 62/340,421, filed May 23, 2016 and entitled “SYSTEM AND METHOD TO CONTROL A THREE-DIMENSIONAL (3D) PRINTER,” U.S. Provisional Patent Application No. 62/340,453, filed May 23, 2016 and entitled “SYSTEM AND METHOD TO CONTROL A THREE-DIMENSIONAL (3D) PRINTING DEVICE,” U.S. Provisional Patent Application No. 62/340,436, filed May 23, 2016 and entitled “SYSTEM AND METHOD TO CONTROL A THREE-DIMENSIONAL (3D) PRINTER,” and U.S. Provisional Patent Application No. 62/340,432, filed May 23, 2016 and entitled “3D PRINTER CALIBRATION AND CONTROL;” the contents of each of the aforementioned applications are expressly incorporated herein by reference in their entirety.

FIELD OF THE DISCLOSURE

The present disclosure is generally related to control of a three-dimensional (3D) printing device.

BACKGROUND

Improvements in computing technologies and material processing technologies have led to an increased interest in computer-driven additive manufacturing techniques, such as three-dimensional (3D) printing. Generally, 3D printing is performed using a 3D printing device that includes an extruder, one or more actuators, and a controller coupled to some form of structural alignment system, such as a frame. The controller is configured to control the extruder and the actuators to deposit material, such as a polymer-based material, in a controlled arrangement to form a physical object.

SUMMARY

In a particular implementation, a method includes obtaining first model data specifying a first three-dimensional (3D) model of a first object and obtaining second model data specifying a second 3D model of a second object. The first model data indicates a location of the first 3D model relative to a model space and the second model data indicates a location of the second 3D model relative to the model space, where the second 3D model intersects the first 3D model in the model space. The method further includes processing the first model data and the second model data to generate machine instructions executable by a 3D printing device to generate a physical model of the first object, the physical model defining a void region to receive a physical instance of the second object.

In another particular implementation, a computer-readable storage device stores instructions that are executable by a processor to cause the processor to perform operations including obtaining first model data specifying a first three-dimensional (3D) model of a first object and obtaining second model data specifying a second 3D model of a second object. The first model data indicates a location of the first 3D model relative to a model space and the second model data indicates a location of the second 3D model relative to the model space, where the second 3D model intersects the first 3D model in the model space. The instructions further cause the processor to perform the operations of processing the first model data and the second model data to generate machine instructions executable by a 3D printing device to generate a physical model of the first object, the physical model defining a void region to receive a physical instance of the second object.

In another particular implementation, a computing device include a processor and a memory accessible to the processor. The memory stores instructions that are executable by the processor to cause the processor to perform operations including obtaining first model data specifying a first three-dimensional (3D) model of a first object and obtaining second model data specifying a second 3D model of a second object. The first model data indicates a location of the first 3D model relative to a model space and the second model data indicates a location of the second 3D model relative to the model space, where the second 3D model intersects the first 3D model in the model space. The instructions further cause the processor to perform the operations of processing the first model data and the second model data to generate machine instructions executable by a 3D printing device to generate a physical model of the first object, the physical model defining a void region to receive a physical instance of the second object.

Other aspects, advantages, and features of the present disclosure will become apparent after review of the entire application, including the following sections: Brief Description of the Drawings, Detailed Description, and the Claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram that illustrates a system that includes a three-dimensional (3D) printing device and a slicer application, according to a particular embodiment;

FIG. 2 is a block diagram that illustrates data flow among a computing device that includes a slicer application and a 3D printing device;

FIG. 3 is a diagram that illustrates a process of generating a sliced model;

FIG. 4 is a diagram that illustrates a particular embodiment of a method of slicing a 3D model to form commands to control a 3D printing device;

FIGS. 5, 6, 7, 8, 9, 10, 11, 12, 13, and 14 illustrate various stages during printing of a physical model of the 3D model of FIG. 4; and

FIG. 15 is a flow chart that depicts an example of a method that may be performed by the system of FIG. 1.

DETAILED DESCRIPTION

A 3D printing device may be a peripheral device that includes an interface to a computing device. For example, the computing device may be used to generate or access a 3D model of an object. In this example, a computer-aided design (CAD) program may be used to generate the 3D model. A slicer application may process the 3D model to generate commands that are executable by the 3D printing device to form a physical model of the object. For example, the slicer application may generate G-code (or other machine instructions) that instruct when and where a controller of the 3D printing device is to move an extruder and provides information regarding 3D printing device settings, such as extruder temperature, material feed rate, extruder movement direction, extruder movement speed, among others.

The slicer application may generate the G-code or the machine instructions by dividing the 3D model into layers (also referred to as “slices”). The slicer application determines a pattern of material to be deposited to form a physical model of each slice. Generally, the physical model of each slice is formed as a series or a set of lines of extruded material. The G-code (or other machine instructions), when executed by the controller of the 3D printing device, cause the extruder to deposit a set of lines of the material in a pattern to form each layer, and one layer is stacked upon another to form the physical model. Layer stacking arrangements or support members can also be used to form lines of the material that are partially unsupported (e.g., arches).

The slicer application may also be able to generate the G-code or the machine instructions from 3D models of multiple objects. For example, the slicer application may be able to create one or more void regions in a physical model of a first object that correspond to a 3D model of a second object. The second object may be an electrical component or a circuit component, and the slicer application may process the multiple 3D models to generate the G-code or the machine instructions that allow inserting a physical instance of the second object into the physical model of the first object. Additionally, the slicer application may generate the G-code or the machine instructions to instruct a 3D printing device to form a physical model of a third object within a void region of the physical model of the first object. The third object may be formed by depositing conductive material. The third object may include or correspond to electrical or circuit components, such as electrical contacts, resistors, transistors, capacitors, inductors, etc. Thus, the slicer application may generate instructions that enable the 3D printing device to form a functional circuit within the physical model of the first object. By forming a functional circuit within the physical model, a 3D printing device may be able to print three dimensional electrical devices and components. Forming prototypes or products of electrical devices and components using a 3D printing device may be faster and less expensive than creating specific tool and die processes to manufacturer the prototypes or the products.

FIG. 1 illustrates a particular embodiment of a system 100 that includes a 3D printing device 101, a computing device 102, and a slicer application 108. The 3D printing device 101 and the computing device 102 may be coupled via a communications bus 160, which may include a wired communications interface, a wireless communications interface, or both. The 3D printing device 101 is configured to generate physical models of objects based on a 3D model or commands based on model data.

In a particular embodiment, the computing device 102 includes a processor 103 and a memory 104. The computing device 102 may include a 3D modeling application 106. The 3D modeling application 106 may enable generation of 3D models, which can be used to generate model data 107 descriptive of the 3D models. For example, the 3D modeling application 106 may include a computer-aided design application. The model data 107 may include or correspond to one or more 3D models of one or more objects.

The computing device 102 or the 3D printing device 101 includes the slicer application 108. The slicer application 108 may be configured to process the model data 107 to generate commands 109 that the 3D printing device 101 (or portions thereof) uses during generation of a physical model of an object represented by the model data 107. In the particular embodiment illustrated in FIG. 1, the commands 109 may include G-code commands or other machine instructions that are executable by the 3D printing device 101 (or a portion thereof). For model data (e.g., the model data 107) that includes one or more 3D models of multiple objects, the slicer application 108 may process the model data 107 to generate a single integrated model with one or more void regions that correspond to one or more objects of the multiple objects. The slicer application 108 may generate instructions to enable an electrical component (e.g., a non-printed component) to be inserted into a void region, to form (e.g., deposit conductive material) electrical or circuit components (e.g., electrical contacts, resistors, transistors, capacitors, inductors, etc.) in a void region, or both. The slicer application 108 is described in further detail with respect to FIGS. 2-4.

The computing device 102 may also include a communications interface 105 that may be coupled via the communication bus 160 to the 3D printing device 101. For example, the 3D printing device 101 may be a peripheral device that is coupled via a communication port to the computing device 102.

The 3D printing device 101 includes a frame 110 and support members 111 arranged to support various components at the 3D printing device 101. In particular embodiments, the 3D printing device 101 may include a deposition platform 112. In other embodiments, the 3D printing device 101 does not include a deposition platform 112 and another substrate or surface may be used for deposition. The 3D printing device 101 also includes one or more printheads. For example, in the embodiment illustrated in FIG. 1, the 3D printing device 101 includes a first printhead 113, a second printhead 114, and an Nth printhead 115. Although three particular printheads are illustrated in FIG. 1, in other embodiments, the 3D printing device 101 may include more than three printheads or fewer than three printheads. Each printhead 113-115 includes a corresponding extruder with an extruder tip. For example, the first printhead 113 includes a first extruder 130 having a first extruder tip 131, the second printhead 114 includes a second extruder 132 having a second extruder tip 133, and the Nth printhead 115 includes an Nth extruder 134 including an Nth extruder tip 135.

Each printhead 113-115 is coupled to receive a material that may be deposited to form a portion of a physical model of an object. For example, the first printhead 113 may be coupled to a first material container 119 that includes a first material 120. As another example, the second printhead 114 may be coupled to a second material container 121 that includes a second material 122. The Nth printhead 115 may be coupled to a mixer 127. The mixer 127 may be coupled to a first component container 123 and a second component container 125. The first component container 123 may be configured to retain a first component 124, such as a resin. In this example, the second component container 125 may be configured to contain a second component 126, such as a hardening agent. In the example illustrated in FIG. 1, the first component container 123 and the second component container 125 are coupled to the mixer 127 to enable the mixer 127 to generate a mixture 128 that includes a portion of the first component 124 and a portion of the second component 126. The first component 124 and the second component 126 may be selected to begin hardening upon mixing. Thus, the mixture 128 may begin curing as soon as the mixer 127 has mixed the components.

Proportions of the components 124, 126 supplied to the mixer 127 may be controlled by a controller 141 of the 3D printing device 101. The controller 141 may also, or in the alternative, control one or more actuators 143 to move the deposition platform 112 relative to the printheads 113-115, to move the printheads 113-115 relative to the deposition platform 112, or both. For example, in a particular configuration, the deposition platform 112 may be configured to move in a Z direction 140. In this example, the printheads 113-115 may be configured to move in an X direction 138 and a Y direction 139 relative to the deposition platform 112. Thus, movement of one or more printheads 113-115 relative to the deposition platform 112 may involve movement of the deposition platform 112, movement of one or more of the printheads 113-115, or movement of both the deposition platform 112 and the printheads 113-115. In other examples, the deposition platform 112 may be stationary and one or more of the printheads 113-115 may be moved. In yet other examples, the one or more printheads 113-115 may be stationary and the deposition platform 112 may be moved.

Accordingly, the 3D printing device 101 enables use of multiple printheads 113-115 with multiple distinct materials, such as the first material 120, the second material 122, the mixture 128, or a combination thereof, to form physical models of 3D objects corresponding to model data 107. The 3D printing device 101 is able to form a functional circuit within the physical model by creating void regions within the physical model of the object that contain physical instances of electrical or circuit components. Additionally, the 3D printing device 101 may be able to form the circuit within the physical model of the object by depositing electrically conductive material to form electrical or circuit components, such as electrical contacts, resistors, transistors, capacitors, inductors, etc., within the physical model and the void regions thereof.

FIG. 2 illustrates a block diagram showing data flow among various components of the computing device 102 and the 3D printing device 101. In particular, the block diagram of FIG. 2 illustrates data that is communicated between the 3D modeling application 106, the slicer application 108, the 3D printing device 101, and one or more external devices, such as an external device 240. In FIG. 2, a 3D modeling application 106 may be used to generate, access, or modify 3D models of one or more objects. For example, the 3D modeling application 106 may be used to obtain first model data corresponding to a first 3D model 202. The first model data may specify a 3D model of a first object and may indicate a location of the first 3D model 202 in a model space 208. The model space 208 may include a coordinate system and scale information. For example, the model space 208 may indicate positions relative to an origin point along an X direction or X-axis, a Y direction or Y-axis, and a Z direction or a Z-axis.

The 3D modeling application 106 may also be used to generate, access, or modify second model data corresponding to a second 3D model 204. For example, the 3D modeling application 106 may be used to generate the second model data corresponding to the second 3D model 204. The second model data may represent a 3D model of a second object. The second model data may also indicate a relative position of the second object or the second 3D model 204 in the model space 208. In a particular example, the second object may intersect the first object in the model space 208. That is, when the second 3D model 204 is mapped to the model space 208, and the first 3D model 202 is mapped to the model space 208, at least a portion of the second 3D model 204 may overlap or be embedded within the first 3D model 202. To illustrate, at least one point of the coordinate system is associated with the first 3D model 202 and the second 3D model 204. As another illustration, at least one coordinate of a set of coordinates the first 3D model 202 overlaps (or is co-located) with at least one coordinate of a set of coordinates of the second 3D model 204. In some implementations, the second 3D model may intersect the third 3D model.

The 3D modeling application 106 may also be used to access, generate, or modify third model data corresponding to a third 3D model 206. The third 3D model 206 may represent an electrical interconnect or a set of electrical interconnects. The third 3D model 206 may also indicate a relative position of the electrical interconnect, the third 3D model 206, or both, in the model space 208. In some implementations, at least a portion of the third 3D model 206 may intersect at least a portion of the first 3D model 202 in the model space 208. One or more of the 3D models 202-206 may correspond to printable objects, that is, objects that are to be printed by 3D printing device 101.

Additionally, one or more of the 3D models 202-206 may correspond to a non-printing object. For example, in the example illustrated in FIG. 2 and FIG. 3, the second 3D model 204 corresponds to a non-printing object (e.g., an electrical component) to be inserted in a physical model of an object corresponding to the first 3D model 202. In this example, the electrical interconnects described by the third 3D model 206 may provide circuitry or communication paths associated with the electrical component to enable the electrical component and the electrical interconnect to form a functional circuit within the physical object defined by the first 3D model 202, the second 3D model 204, and the third 3D model 206.

The 3D modeling application 106 may also be used to generate or obtain tags 210. The tags 210 may indicate one or more materials to be used to form physical objects corresponding to one or more of the 3D models 202-206 or may indicate that one or more of the 3D models 202-206 is a non-printing object. The 3D modeling application 106 may use the tags 210 to generate tagging data 212, which may be sent to a slicer application 108. For example, when model data 107, corresponding to the 3D models 202-206, is provided to the slicer application, the tagging data 212 may also be provided to the slicer application 108 indicating that the second 3D model 204 corresponds to a non-printing object.

Referring to FIG. 3, an example of a process performed by the computing device 102 is illustrated graphically. For example, the first 3D model 202 of FIG. 2 is illustrated in FIG. 3 as corresponding to a first 3D model of an object formed of a matrix material. Additionally, the second 3D model 204 of FIG. 2 is illustrated in FIG. 3 as corresponding to an object tagged as a non-printing object, such as an electrical device that has one or more contacts 302. Further, the third 3D model 206 of FIG. 2 is illustrated in FIG. 3 as corresponding to as a set of electrical interconnects. The first 3D model, second 3D model, and third 3D model are represented in FIG. 3 as three distinct 3D models, each of which may be defined relative to the model space (e.g., the model space 208). The first 3D model intersects the second 3D model and the third 3D model in the model space. For example, at least one point of a coordinate system of the model space is associated with the first 3D model 202 and the second 3D model 204. To illustrate, at least one coordinate of a set of coordinates the first 3D model 202 overlaps (or is co-located) with at least one coordinate of a set of coordinates of the second 3D model 204. In some implementations, the second 3D model may intersect the third 3D model.

Returning to FIG. 2, after the model data 107 and the tagging data 212 are obtained by the slicer application 108, the slicer application 108 may process the model data 107 and the tagging data 212 to generate commands 109 to be provided to the 3D printing device 101. For example, the commands 109 may include G-code, or other information, to direct a 3D printing device 101 regarding steps to perform to generate a physical model corresponding to the model data 107. The model data 107 may include information regarding each of the 3D models 202-206, information regarding the model space 208, other information, such as definitions of materials, etc. In some implementations, the model data 107 may include the tagging data 212.

In a particular implementation, the slicer application 108 may form the commands 109 by defining void regions in a matrix material corresponding to the first 3D model 202 to receive the non-printing object corresponding to the second 3D model 204 and to receive filler material, such as electrically conductive material corresponding to the third 3D model 206 of the electrical interconnects. For example, the slicer application 108 may generate a sliced model 220. The sliced model 220 may include a plurality of layers 222 defining or describing material to be deposited by one or more extruders of the 3D printing device 101 in a stacked arrangement in order to form a physical object corresponding to the model data 107. Each of the layers may include the matrix material, the filler material, or both. For example, for some of the layers, the 3D printing device 101 may deposit a first material corresponding to the matrix material to define, for example, a physical support or a structure of a first object corresponding to the first 3D model 202. For one or more of the layers 222, the 3D printing device 101 may deposit a second material (e.g., the filler material) corresponding to the third 3D model 206 to form an electrically conductive trace or region corresponding to an electrical interconnect of the third 3D model 206. As another example, the 3D printing device 101 may use the matrix material or the filler material, or both to define a void region to receive a physical instance of a second object (e.g., a non-printing object) corresponding to the second 3D model 204.

The slicer application 108 may also select from among the layers 222, one or more layers as an insertion layer 224 and one or more layers as an interconnect deposition layer 226. An insertion layer 224 corresponds to a last printed layer of the matrix material, the filler material, or both, before a non-printing object is inserted in a physical model. For example, an insertion layer 224 may correspond to a last printed layer to define a void region to receive the non-printing object. The insertion layer 224 may be selected, such that after the non-printing object is inserted into the physical model, one or more extruders of the 3D printing device 101 can deposit additional material on, over, around, or a combination thereof, the non-printing object without the extruders contacting the non-printing object. For example, the void region may be defined with walls sufficiently high that when the non-printing object is inserted (e.g., recessed) within the physical model, the one or more extruders can pass over the physical instance of the non-printing object without contacting the non-printing object.

To illustrate, an upper surface of the non-printing object may be below an upper surface of the last printed layer of the physical object, as described further with reference to FIG. 11. The interconnecting deposition layers 226 may include information indicating when an electrical interconnect material (e.g., the filler material) is to be deposited prior to insertion of a physical instance of a non-printing object. To illustrate, returning to FIG. 3, the non-printing object corresponding to the second 3D model 204 includes the contacts 302. In the example illustrated in FIG. 3, one of the contacts 302 is on the bottom of the non-printing object. To provide sufficient electrical connection between the contact 302 on the bottom of the non-printing object and an electrical interconnect printed by the 3D printing device, additional material (e.g., electrical interconnect material) may be deposited at a layer lower than a highest most layer printed by the 3D printing device to provide fresh electrical interconnect material just before insertion of the non-printing object. Further, description of the interconnect deposition layer 226 and insertion layer 224 is described with reference to FIGS. 8-11 for clarity.

In a particular embodiment, the slicer application 108 may determine void regions corresponding to the void regions in the first 3D model 202 corresponding to the second 3D model 204 and the third 3D model 206. For example, the void regions may be defined by the matrix material, the filler material, or both in order to allow insertion of a physical instance of a non-printing object corresponding to the second 3D model 204. Additionally, the void regions may be defined sufficiently to account for 3D printing device characteristics 214. For example, where an extruder head of the 3D printing device 101 is to deposit material below an uppermost surface (e.g., the highest most layer printed) of previously deposited material, dimensions of the extruder head may be accounted for in determining the void regions to prevent impact of the extruder head with previously printed materials, as described with reference to FIGS. 12 and 13.

If the slicer application 108 determines that a particular void region is insufficient to allow deposition of a material within a portion of a physical model (e.g., due to depth, width, or other dimensions of the void region, or due to the 3D printing device characteristics 214), a notification 234 may be provided to an external device 240, such as a user interface device. The notification 234 may indicate a suggestion of manual intervention during formation of the physical model in order to accommodate deposition as needed. For example, the manual intervention may include manually depositing electrical interconnect material prior to inserting a physical instance of a non-printing object in the partially complete physical model.

The sliced model 220 may be used to generate machine instructions 230. For example, the slicer application 108 may generate the machine instructions 230 based on the sliced model 220. The machine instructions 230 may include one or more interrupts 232. For example, an interrupt 232 may be associated with each insertion layer 224. When the interrupt 232 is executed, it may cause a notification to be executed by the 3D printing device 101 or it may cause a notification 242 to be sent to an external device 240 (e.g., a pick and place machine, a user interface device, etc.) to indicate that a physical model being generated by the 3D printing device 101 is at a stage to allow insertion of a physical instance of a non-printing object, such as a physical instance of an object corresponding to the second 3D model 204. Additionally, if a notification 234 has been provided by the slicer application 108 to the external device 240 that indicates or suggests manual intervention, an interrupt 232 may be associated with the manual intervention. The notification 234 may indicate that a user step is required at the particular stage during formation of the physical object.

The machine instructions 230 and interrupts 232 may be used to perform commands 109 (e.g., G-code provided to the 3D printing device 101) to generate a physical model corresponding to the first 3D model 202, the third 3D model 206, and to provide void regions to accommodate a physical instance of a non-printing object corresponding to the second 3D model 204. The void regions may be shaped such that the second 3D model or a physical instance of a non-printing object corresponding to the second 3D model 204 can be inserted into a physical model of the first 3D model 202 from above. For example, a cross-sectional shape of the void region may be determined based on a largest cross-section of the non-printing object. Additionally, where materials are to be deposited below an uppermost surface of previously deposited material by the 3D printing device 101, dimensions of the void regions may need to be determined based on the 3D printing device characteristics 214.

Thus, FIG. 2 describes how a slicer application may process multiple models to generate instructions that enable a 3D printing device to deposit materials to form a physical model that includes void regions. The void regions may be configured to receive a physical instance of a non-printing object and a functional circuit may be formed in the physical object.

FIG. 3, as previously indicated, illustrates a first stage of generation of the sliced model. For example, in FIG. 3, the first 3D model 202, the second 3D model 204, and the third 3D model 206 may be combined to generate a sliced model. In a particular operation, the first model data (e.g., a portion of the model data 107) corresponding to the first 3D model 202 may be modified to define a void region 304 corresponding to the second 3D model 204.

As previously described, the void region 304 may have dimensions corresponding to the second 3D model 204 or may have dimensions larger than the second 3D model 204. To illustrate, a cross-section of the void region 304 in a particular plane may have size and shape corresponding to a largest cross-section of the second 3D model 204. As another example, the dimensions of the void region 304 may be determined, based at least in part on the 3D printing device characteristics 214. Additionally, areas to be printed using matrix material may define void regions corresponding to areas to be printed using other materials, such as an electrically conductive material (e.g., interconnect material) corresponding to the third 3D model 206. Thus, the first model data corresponding to the first 3D model 202 may be modified to subtract electrical interconnects from matrix material to generate void regions 306. Thus, an integrated model of the matrix material 310 may be formed based on the first 3D model 202, the second 3D model 204, the third 3D model 206, as well as characteristics of the 3D printing device 101.

After the integrated model of the matrix material 310 is formed, preliminary slicing may be performed to identify insertion layers, interconnect deposition layers, or both. For example, a particular slice of the integrated model of the matrix material 1 310 may be identified as an insertion layer 312. The insertion layer 312 may correspond to a layer at a top of the void region 304. That is, the insertion layer 312 is the last printed layer of the matrix material defining the void region 304. The preliminary slicing to identify the interconnect deposition layers may determine when material corresponding to electrical interconnects is to be deposited. For example, material corresponding to electrical interconnects 320 may be deposited during formation or curing of the matrix material within each layer. Alternatively, the matrix material may be printed based on the integrated model of the matrix material 310 and after multiple layers of matrix material that form at least a portion of one of the void regions 306 is deposited, electrically conductive material corresponding to the electrical interconnect 320 may be deposited.

In a particular example, since the insertion layer 312 is above an electrical contact corresponding to the bottom contact 302 of the non-printing object. Sufficient time may have passed after deposition of electrical interconnect material corresponding to the electrical interconnects 320 that a reliable electrical interconnect may not be formed between the electrical interconnect material and the contact 302 on the bottom of the electrical component or non-printing object. Accordingly, an interconnect deposition layer may be identified to deposit a portion of electrical interconnect material 322 after printing the insertion layer 312, such that the electrical interconnect material 322 is deposited just before insertion of a physical instance of the second object (e.g., the electrical component) to ensure secure electrical contact between the contact 302 on the bottom of the electrical component and the electrical interconnects. Additionally, the electrical interconnects 324 may be printed after insertion of the non-printing object. Thus, FIG. 3 illustrates formation of a sliced model 330 and identification of particular layers.

FIG. 4 illustrates multiple steps associated with generating commands 109, such as G-code instructions, based on a 3D model of an object. In FIG. 4, the 3D model corresponds to the sliced model 330 of FIG. 3. In operation, other 3D models, including 3D models having different shapes, different materials, etc. may be used. The 3D model may include or be based on the model data 107 of FIG. 1. In FIG. 4, the sliced model 330 is formed of multiple materials, including the first material 120 and the second material 122. In the example illustrated in FIG. 4, the first material 120 is used as a matrix material, and the second material 122 is used as a filler material.

After obtaining the 3D model or the model data 107, a slicer application, such as the slicer application 108, may perform slicing operations to generate the commands 109. In the example illustrated in FIG. 3, preliminary slicing is performed to generate the sliced model 330. The sliced model 330 includes multiple slices 404, 406, only two of which are illustrated. Each slice 404, 406 represents a single layer of a physical model based on the 3D model. Each layer of the physical model includes one or more materials. Accordingly, each slice 404, 406 may be divided into regions, with each region corresponding to a particular material. For example, the slice 404 includes a first region corresponding to a portion of the first material 120 and a second region corresponding to a portion of the second material 122. The slice 406 includes a first region corresponding to a portion of the first material 120 and a second region in which no material is present.

After the sliced model 330 is generated, the slicer application 108 may modify one or more of the slices based on characteristics (e.g., 3D printing device characteristics) of the 3D printing device 101 to be used to print the physical model. For example, the slicer application 108 may access the settings 150, the calibration data 148, or both, associated with the 3D printing device 101 of FIG. 1. Alternately, the settings 150, the calibration data 148, or both, may be accessible at the memory 104 of the computing device 102 of FIG. 1.

In the example illustrated in FIG. 4, the slice 414 is modified relative to the slice 404 of the sliced model 330. For example, in the slice 414, a larger second region associated with the second material has been provided. The second region of the slice 414 may be determined based on dimensions associated with an extruder that deposits the second material. To illustrate, a size of the second region of the slice 414 may be determined based on a size of second extruder tip 133. For example, in order to improve interlayer adhesion and/or printing characteristics, the slicer application 108 may determine that, when the physical model is printed, a portion of the second material 122 will be embedded within the physical model (e.g., entirely enclosed by the first material). Accordingly, the slicer application may determine that an injection technique may be used to deposit at least the embedded portion of the second material. The injection technique may inject the second material into a tunnel formed by void regions in multiple layers of the first material (rather than depositing multiple layers of the second material, with one layer corresponding to one slice of the sliced model 330).

For example, the slicer application may be configured to generate commands that favor printing one material at a time, and then print with a different material. To illustrate, a first material may be used to form multiple layers corresponding to a set of slices. Even when the slices include regions corresponding to a second material, the slicer application may arrange the commands so that all of the regions that use the first material are printed first. Subsequently, regions that use the second material may be printed, such as by printing on a non-planar surface formed by the first material or by injecting the second material into tunnels or voids defined in the first material. When the first material encloses the second material, the first material may be deposited until just before the access to a region that is ton include the second material is closed off, then the second material may be deposited, as illustrated in FIGS. 10 and 13.

As illustrated in FIG. 4, the slicer application may modify some slices to enable the layer to be deposited using injection techniques. The modified slices may improve printing using injection techniques by, for example, widening the area 412 to enable the second extruder tip 133 to fit within the opening correspondent to the area 412.

Modifying the slices results in a modified sliced model 410, which may be further processed. For example, when a slice, such as the slice 414, includes an enclosed void region 418, the slicer application may process that slice 414 as multiple separate or coupled polygons to limit or reduce starting and stopping during a deposition process. During formation of a physical model, the void region 418 may eventually be filled with the second material 122. However, during deposition of the first material 120, the void region 418 is empty. The slicer application 108 may process the slice 414 to generate multiple polygons, such as a first polygon 420, a second polygon 422, a third polygon 424, and a fourth polygon 426. The multiple polygons 420-426 may be generated and arranged such that the void region 418 is surrounded by the polygons 420-426, each polygon 420-426 is adjacent to the void region 418, and no polygon 420-426 includes an internal void region. Thus, each polygon 420-426 may be continuous (without spaces, openings, or holes), so that each polygon 420-426 can be printed using continuous lines, thereby limiting starting and stopping a corresponding printhead.

The second slice 406 may also be processed further. For example, the second slice 406 includes multiple regions of the first material 120 and a large gap region in which no material is deposited. In this case, the slicer application 108 may identify and separate the regions to generate separate stacks 430 and 432. Each separate stack 430, 432 may be treated as a separate layer for purposes of generating a tool path. For example, a tool path 434 may be generated for the first stack 430, and a tool path 436 may be generated for the second stack 432. Although not illustrated in FIG. 4, tool paths may also be generated for the polygons 420-426 and other slices of the modified sliced model 410. The tool paths associated with slices and materials together are illustrated in FIG. 4 as a sliced and tool pathed model 440. The sliced and tool pathed model 440 may be processed to generate the commands 109.

In a particular embodiment, tool paths for multiple slices of the sliced and tool pathed model 440 may be determined such that a continuous line of material extends between multiple layers. For example, as further described in FIG. 5, a tool path for multiple layers of a single material may be generated such that a line of material of a first layer extends to a second layer, where the second layer is stacked on the first layer.

Additionally, in some embodiments, one material may be deposited on a nonplanar surface formed by another material. For example, the slicer application may generate a tool path for depositing the second material that extends across multiple layers of the first material, as illustrated in FIG. 14.

Further, as described above and with reference to FIGS. 10-13, one material may be injection-molded within another material. For example, the sliced and tool pathed model 440 is arranged such that a portion of the second material 122 is injected within cavities defined within the first material 120.

Thus, FIG. 4 illustrates operations that can be formed by a slicer application, such as the slicer application 108, to improve printing device performance, to improve interlayer adhesion, and to reduce starting and stopping of printing with a particular printhead (e.g., within a particular layer as well as in between layers). The commands 109 (e.g., G-code) may be provided to a 3D printing device, such as the 3D printing device 101 of FIG. 1, to generate a physical model of the sliced and tool pathed model 440.

FIGS. 5-14 illustrate particular aspects of forming a physical object based on a 3D model. In the examples illustrated in FIGS. 5-14, particular aspects of the first 3D model 202, the second 3D model 204, and the third 3D model 206 are used as examples. For example, the commands 109 may be executed by the 3D printing device of 101 of FIG. 1 to build a physical model of the sliced and tool pathed model 440 of FIG. 4.

FIG. 5 illustrates an extruder 502 coupled to a support member 111 and to a drive belt 510. The extruder 502 may include, correspond to, or be included within one of the extruders 130, 132, 134 of FIG. 1. Although the examples illustrated in FIGS. 5-14 include a drive belt 510 coupled to an actuator (not shown), in other examples, the extruder 502 may be coupled to other actuators or devices to move the extruder 502 relative to the deposition platform 112. Alternately, the deposition platform 112 may be moved relative to the extruder 502.

In the example illustrated in FIG. 5, during a first stage of formation of the physical model, the extruder 502 is moved in a direction 506 to form a portion of a first stack 504. The portion of the first stack 504 may correspond to the first stack 430 of FIG. 4. FIGS. 5-14 are illustrated from a front view, however; as illustrated more clearly by the tool path 434 of the first stack 430 of FIG. 4, the first stack 504 may include multiple lines or rows of material per layer. In FIG. 5, the first stack 504 may be arranged such that a line extends from a first layer onto a second layer, where the second layer is stacked on the first layer. Thus, in FIG. 5, a portion of the extruded material (e.g., a first material) is stacked, at 508. Stacking the material, as illustrated at 508, may facilitate interlayered adhesion between layers of the first stack 504.

FIG. 6 illustrates a second stage during formation of the physical model. The second stage may be subsequent to the first stage. In FIG. 6, the extruder 502 is moved in a U-turn or curve 512 in order to follow a tool path, such as the tool path 434 illustrated in FIG. 4, to complete the stack 504. The tool path may enable using a single continuous line of extruded material to form multiple rows of material in a layer.

FIG. 7 illustrates a third stage of formation of the physical model. The third stage may be subsequent to the second stage. In FIG. 7, the first stack 504 has been completed to a height (i.e., second height 522) determined based on characteristics of the 3D printing device being used. The second height 522 may be selected by the slicer application described with reference to FIG. 4, by the computing device 102, or by the controller 141 of the 3D printing device 101. The second height 522 is less than a distance (e.g., first height 520) between the tip of the extruder 502 and the support member 111 coupled to the extruder 502. For example, the second height 522 may be less than the first height 520 by an amount that is less than a thickness of one layer of the first stack (or by an amount that is less than two layers of the first stack 504) to provide clearance for depositing another stack (such as the second stack 514). Thus, the extruder 502 may be able to deposit abase layer of the second stack 514 on the deposition platform 112 without the first stack 504 coming in contact with the support member 111.

FIG. 8 illustrates a fourth stage during formation of the physical model. The fourth stage may be subsequent to the third stage. In FIG. 8, layers of the first material (e.g., the matrix material) have been deposited to join the first stack 504 with the second stack 514, and electrical interconnects are partially formed from depositing layers of a second material (e.g., filler material) in the first stack 501 and the second stack 514. For example, the electrical interconnects 320 are partially formed into a joined first and second stack 824. To illustrate, the electrical interconnects 320 may be formed by an extruder (e.g., a second extruder) depositing a portion of the filler material (e.g., interconnect material).

FIG. 9 illustrates a fifth stage during formation of the physical model. The fifth stage may be subsequent to the fourth stage. FIG. 9 illustrates forming a void region for a physical instance of a second object. For example, the first material (e.g., matrix material) and the second material (e.g., the interconnect material) and may be deposited by one or more extruders to form or define the void region 304. To illustrate, the fifth stage illustrates a formation of sidewalls that define the void region 304. The sidewalls may be formed from the second material to define the void region, the electrical interconnects 320, or both.

FIG. 10 illustrates a sixth stage during formation of the physical model. The sixth stage may be subsequent to the fifth stage. In FIG. 10, an additional bit of the second material (e.g., the interconnect material) is deposited after the void region 304 is formed and before insertion of the physical instance of the second object. For example, fresh electrical interconnect material 322 is deposited in the void region 304 to electrically couple the physical instance of the second object to the electrical interconnects 320. To illustrate, a portion of the electrical interconnect material 322 is deposited on a portion of the electrical interconnects 320 which is located on a lower layer than a last printed layer 1002.

FIG. 11 illustrates a seventh stage during formation of the physical model. The seventh stage may be subsequent to the fifth stage. In FIG. 11, the physical instance of the second object has been inserted into the void region 304 and placed in contact with the electrical interconnect material 322, the contacts 302, or a combination thereof. The physical instance of the second object may be electrically coupled to the contacts 302, the electrical interconnects 320, or both, via the electrical interconnect material 322.

FIG. 12 illustrates an eighth stage during formation of the physical model. The eighth stage may be subsequent to the seventh stage. In FIG. 12, a portion of the first material has been deposited to form a second void region 1206 in the physical model. The second void region may include or correspond to a portion of the void regions 306. The second void region 1206 may define a shape of the electrical interconnect 324. In other implementations, the second void region 1204 may define a second shape that is larger than the shape of the electrical interconnect 324. For example, an extruder may not fit in (extend into) the second void region when the shape is smaller than a cross section of the extruder. As illustrated, in FIG. 12, the second shape of the second void region may be larger (e.g., wider at the top) than the shape of the electrical interconnect 324 as modeled.

FIG. 13 illustrates a ninth stage during formation of the physical model. The ninth stage may be subsequent to the eighth stage. In FIG. 13, after formation of the second void region, a portion of the second material is deposited to form the electrical interconnect 324. The electrical interconnect 324 may be electrically coupled to the physical instance of the second object, the electrical interconnects 320, or a combination thereof. Alternatively, a third material may be deposited to form the electrical interconnect 326.

FIG. 14 illustrates a tenth stage during formation of the physical model. The tenth stage may be subsequent to the ninth stage. In FIG. 14, a portion of the first material is deposited on the electrical interconnect 324 to form a last layer. Deposition of the portion completes formation of a physical model 1402 corresponding to the sliced and tool pathed model 440 of FIG. 4.

FIG. 15 is a flowchart of a particular embodiment of a method 1500 that may be performed by one or more devices or components of the system 100 of FIG. 1. For example, the method 1500 may be performed by the slicer application 108 of FIGS. 1 and 2. As another example, a slicer application of the 3D printing device may perform the method 1500 by executing instructions from the memory 142. As yet another example, the method 1500 may be performed by the processor 103 of the computing device 102 executing instructions from the memory 104.

The method 1500 includes, at 1502, obtaining first model data specifying a first three-dimensional (3D) model of a first object, the first model data indicating a location of the first 3D model relative to a model space. For example, the slicer application 108 of FIG. 1 may receive or retrieve the model data 107 from the modeling application 106. As another example, the slicer application 108 may obtain the model data 107 by receiving or retrieving the model data 107 via the communication interface 146. As yet another example, the processor 103 of FIG. 1 may obtain the model data 107 by reading the model data 107 from the memory 104. The model data 107 may include or correspond to one or more of the first 3D model 202, the second 3D model 204, or the third 3D model 206 of FIG. 2.

The method 1500 includes, at 1504, obtaining second model data specifying a second 3D model of a second object, the second model data indicating a location of the second 3D model relative to the model space, where, in the model space, the second 3D model intersects the first 3D model processing. For example, the slicer application 108 of FIG. 2 may receive or retrieve the second model data. In some implementations, the second object may include or correspond to an electrical component.

The method 1500 includes, at 1506, processing the first model data and the second model data to generate machine instructions executable by a 3D printing device to generate a physical model of the first object, where the physical model defines a void region to receive a physical instance of the second object. For example, processing the model data may include performing, by the slicer application 108, slicing operations, such as operations described with reference to FIGS. 3 and 4, to generate the commands 109 (e.g., the machine instructions). The void region may include or correspond to the void region 304 of FIG. 3. The physical model may include or correspond to the physical model 1402 of FIG. 14.

The machine instructions may include or correspond to the commands 109 of FIGS. 1, 2, and 4, the machine instructions 230 of FIG. 2, or both. In a particular implementation, the machine instructions 230 may include the commands 109. In some implementations, the machine instructions may include or correspond to G-code commands. The machine instructions may be generated by the slicer application 108 of the computing device 102. Alternatively, if the 3D printing device 101 includes a slicing application, the machine instructions may be generated by the controller 141 or another processor of the 3D printing device 101.

The machine instructions may be executable to cause an extruder of the 3D printing device to deposit a first portion of the material corresponding to a first portion of the physical model. The machine instructions may also be executable to cause the 3D printing device to clean the extruder after depositing the first portion of the material. The machine instructions may further be executable to cause the extruder of the 3D printing device to deposit a second portion of the material after cleaning the extruder, where the second portion of the material corresponds to a second portion of the physical model. The machine instructions may further be executable to cause a second extruder to deposit a portion of a second material. In some implementations, the machine instructions do not include instructions or commands to generate a second physical model of the second object.

In some implementations, the method 1500 may include receiving tagging data indicating that the second object is a non-printing object. For example, the tagging data may include or correspond to the tagging data 212 of FIG. 2. The method may also include determining dimensions of the void region based on dimensions of the second object and based on the tagging data. In a particular implementation, a cross-sectional shape of the void region is determined based on a cross-sectional shape of the second object.

In some implementations, the method 1500 may include determining dimensions of the void region based on dimensions of the 3D printing device. In some implementations, the method 1500 may include determining dimensions of the void region to enable the 3D printing device to deposit material on or over the physical instance of the second object without an extruder of the 3D printing device contacting the physical instance of the second object.

In some implementations, generating the machine instructions may include processing the first model data to generate a sliced model defining a plurality of layers to be deposited to form the physical model of the first object and designating a particular layer of the plurality of layers as an insertion layer. For example, the sliced model may include or correspond to the sliced model 220 of FIG. 2, and the plurality of layers may include or correspond to the layers 222 of FIG. 2. Generating the machine instructions may further include including a print interrupt command in the machine instructions such that a printing operation is interrupted after the 3D printing device deposits material corresponding to the insertion layer. For example, the print interrupt command may include or correspond to the interrupts 232 of FIG. 2. In a particular implementation, the print interrupt command, when executed, may cause a notification to be sent to another device, such as a user device.

In some implementations, the method 1500 may include obtaining third model data specifying a third 3D model of an electrical interconnect. The third model data may indicate a location of the third 3D model relative to the model space, where, in the model space, the third 3D model intersects the first 3D model. The third model data may be processed with the first model data and the second model data to generate the machine instructions. For example, the third 3D model may include or correspond to the third 3D model 206 of FIG. 2 and may be included in the model data 107 of FIG. 2. In a particular implementation, a first portion of the physical model corresponds to the first 3D model and a second portion of the physical model corresponds to the third 3D model. In some implementations, the machine instructions are executable to cause the 3D printing device to deposit a first material to form the first portion of the physical model and to deposit a second material to form the second portion of the physical model.

In some implementations, processing the first model data, the second model data, and the third model data may include generating a sliced model associated with the first model data, the sliced model defining a plurality of layers to be deposited to form the first portion of the physical model. Processing the first model data, the second model data, and the third model data may also include determining that dimensions of the void region are insufficient to allow deposition of the second material within a portion of the physical model that corresponds to the void region. Processing the first model data, the second model data, and the third model data may further include generating a notification suggesting manual intervention during formation of the physical model. For example, the notification may include or correspond to the notification 234 of FIG. 2.

In some implementations, generating the machine instructions may include processing the first model data to generate a sliced model defining a plurality of layers to be deposited to form the physical model of the first object. Generating the machine instructions may also include designating a particular layer of the plurality of layers as an interconnect deposition layer. For example, the interconnect deposition layer may include or correspond to the interconnect deposition layer 226 of FIG. 2. Generating the machine instructions may further include including a command in the machine instructions to deposit material corresponding to at least a portion of the electrical interconnect after deposition of material corresponding to the interconnect deposition layer. For example, the electrical interconnect may include or correspond to one or more of the electrical interconnects 320-324 of FIG. 3. In a particular implementation, the portion of the electrical interconnect is deposited on a layer lower than the interconnect deposition layer. In some implementations, the machine instructions further include a print interrupt command such that a printing operation is interrupted after the 3D printing device deposits material corresponding to at least a portion of the electrical interconnect.

In some implementations, the method 1500 may also include storing data representing the machine instructions, sending data representing the machine instructions to the 3D printing device via a communication interface, or both. For example, after the commands 109 of FIG. 1 are generated, the commands 109 may be stored at the memory 104 of the computing device 102, sent to the 3D printing device 101, or both.

In a first implementation, the machine instructions are executable to cause the 3D printing device 101 to track a quantity of the material deposited to form the first portion of the physical model. In a second implementation, a slicer application (such as the slicer application 108) generating the machine instructions may determine a quantity of the material that will be deposited to form the first portion of the physical model. In some implementations, the machine instructions may include a cleaning sequence based on the quantity of the material deposited satisfying a threshold. In either of these implementations, the machine instructions may be executable to cause the 3D printing device 101 to clean the extruder based on the quantity of the material deposited satisfying a threshold.

Additionally or alternately, the first implementation, the second implementation, or both, may be based on deposition time. To illustrate, in the first implementation, the machine instructions are executable to cause the 3D printing device 101 to track a deposition time associated with forming the first portion of the physical model. In a second implementation, a slicer application (such as the slicer application 108) generating the machine instructions may determine a deposition time associated with forming the first portion of the physical model. In some implementations, the machine instructions may include a cleaning sequence based on the deposition time satisfying a threshold. In either of these implementations, the machine instructions may be executable to cause the 3D printing device 101 to clean the extruder based on the deposition time satisfying a threshold. In yet another implementation, a cleaning sequence may be further based on downtime of an extruder.

In some implementations, the machine instructions are executable to cause the 3D printing device to mix two or more components to form the material. For example, the machine instructions may be executable by the 3D printing device 101 to provide the first component 124 (e.g., a resin) and the second component 126 (e.g., a hardening agent) to the mixer 127 to form the mixture 128. In such implementations, the machine instructions may cause the 3D printing device to clean the extruder based on the time since mixing satisfying a threshold. For example, the two or more components may begin to cure upon mixing, and the threshold may be based on a cure time of the mixture. In such implementations, the material extruded to form the first portion of the physical model may include or correspond to the mixture. Alternatively, in a particular embodiment, the mixture may be used by a second extruder.

In some implementations, the machine instructions are executable to cause the 3D printing device to deposit a second material after depositing the first portion of the material and before depositing the second portion of the material. The second material may be chemically distinct from the material. For example, the physical model may include a first portion representing a matrix material (e.g., a first material) and a second portion representing a filler material (e.g., a second material). The first portion may correspond to the first 3D model 202, and the second portion may correspond to the third 3D model 206.

In a particular implementation, the method 1500 may be performed by a processor and a memory. For example, the processor 103 and the memory 104 of FIG. 1. The memory 104 may be accessible to the processor 103 and the memory 104 may store instructions that when executed cause the processor 103 to perform one or more operations of the method 1500. In some implementations, the memory 104 may include or correspond to a computer-readable storage device.

As explained above, there are many ways that the slicer application can arrange the pattern of materials to be deposited to form each layer. Characteristics of a 3D print job may vary depending on how the slicer application arranges the pattern lines that make up each of the layers. For example, two different patterns of lines may have different printing characteristics, such as an amount of time used to print the physical model, an amount of material used to print the physical model, etc. As another example, two different patterns of lines may result in physical models that have different characteristics, such as interlayer adhesion, weight, durability, etc. Accordingly, different slicer applications or different settings or configurations of the slicer application can affect the outcome of a particular 3D print job.

Besides the arrangement of the pattern of materials, other factors can also affect print quality. For example, during extrusion, some materials have a tendency to clog or partially clog a nozzle of the extruder. As the nozzle begins to clog, the flow properties of the nozzle change. To illustrate, a decreased flow area of the nozzle can lead to forming lines that have decreased cross-sectional area, which can reduce print quality. Additionally, if a clog breaks loose during extrusion, the clog can be deposited as a clump or other line deformity. As another example, some materials may aggregate around the nozzle during extrusion to forms clumps that do not occlude the nozzle but can nevertheless lead to problems. These clumps of material can break loose during extrusion to cause clumps or other line deformities in the deposited material.

Accordingly, one method of improving print quality is to have the slicer application periodically or occasionally interrupt the extrusion process to clean the extruder by inserting cleaning instructions or commands into the machine instructions 230 or the commands 109. The extruder can be cleaned by moving the extruder to a cleaning station that includes one or more brushes or scrapers. The brushes or scrapers may be passive such that the extruder is moved across the brushes or scrapers to remove excess material. Alternately, the brushes or scrapers may be active (e.g., moving linearly or rotating) to contact the extruder to remove excess material. The cleaning station may also include a waste catcher to catch and retain the removed excess material away from the object being printed. The waste catcher may also be used to purge material from the extruder. For example, material may be purged from the extruder when changing from using a first material to using a second material. As another example, if the material being deposited is reactive (e.g., cures after being mixed or upon exposure to air) some or all of the material may be purged when the extruder is cleaned to avoid curing of the material in the extruder.

Different types of extruders may be used to deposit different types of materials (e.g., physically or chemically distinct materials). For example, a filament-fed extruder may be used to deposit thermoplastic polymers, such as polylactic acid (PLA), acrylonitrile butadiene styrene (ABS) polymers, and polyamide, among others. Paste extruders, such as pneumatic or syringe extruders, may be used to deposit materials that are flowable at room temperature (or at a temperature controlled by the 3D printing device). Examples of materials that may be deposited using paste extruders include silicone polymers, polyurethane, epoxy polymers. Paste extruders may be especially useful to deposit materials that undergo curing upon exposure to air or when mixed together (such as multi-component epoxies).

Some 3D printing devices include multiple extruders to improve print speed or to enable printing with multiple different materials. For example, a first extruder may be used to deposit a first material, and a second extruder may be used to deposit second material. In this example, the first and second materials may have different visual, physical, electrical, chemical, mechanical, and/or other properties. To illustrate, the first material may have a first color, and the second material may have a second color. As another illustrative example, the first material may have first chemical characteristics (e.g., may be a thermoplastic polymer), and the second material may have a second chemical characteristics (e.g., may be a thermoset polymer). As yet another illustrative example, the first material may be substantially non-conductive, and the second material may be conductive. In this example, the first material may be used to form a structure or matrix, and the second material may be used to form conductive lines or electrical components (e.g., capacitors, resistors, inductors) of a circuit.

When a 3D printing device uses multiple extruders to deposit multiple materials, one extruder may be idle (i.e., not extruding material) while another is depositing material. For example, while a first extruder is depositing a matrix material, a second extruder may be idle. Idle extruders may be particularly subject to clogging since flow of material through the extruder may reduce clogging. If the idle extruder becomes clogged, it can lead to reduced print quality as a result of clumps in material that is later deposited by the extruder.

Accordingly, to improve print quality, a print job may be periodically or occasionally interrupted to clean or purge an idle extruder. To illustrate, after a first extruder deposits a first portion of a first material to form part of a physical object, a second extruder (that was idle while the first extruder deposited the first portion of the first material) may be cleaned. Subsequently, the print job may be resumed. For example, the first extruder may deposit a second portion of the first material to form another part of a physical object. Alternately, the second extruder may deposit a second material, or a third extruder may deposit a third material.

In some implementations, the first extruder may also be cleaned while the print job is interrupted. For example, cleaning of the first extruder and of the second extruder may be scheduled so that both are cleaned when either one is to be cleaned.

In some implementations, cleaning operations may be encoded in the G-code or other machine instructions. For example, the slicer application may schedule cleaning operations for one extruder or for multiple extruders. In this example, the G-code or other machine instructions include a sequence of operations associated with printing the physical model (e.g., extrusion operations, extruder movement operations, etc.) and at least one cleaning operation is embedded with the sequence of operations associated with printing the physical model.

In other implementations, cleaning operations may be scheduled or implemented by the controller of the 3D printing device. For example, the slicer application may provide G-code or other machine instructions that specify a sequence of operations associated with printing the physical model, and, during printing, the controller may interrupt execution of the sequence of operations to perform cleaning operations.

The cleaning operations may be performed based on an amount of material deposited. For example, the slicer application may determine a quantity of material that will be used to form a portion of the physical model, and the slicer application may insert a cleaning operation into the G-code or machine instructions when the quantity of material that will be used to form the portion satisfies a threshold. Alternately, the controller of the 3D printing device may track the quantity of material that has been deposited and interrupt the 3D printing device to clean one or more extruders when the quantity of material that has been deposited satisfies a threshold. In other implementations, deposition time of an extruder, idle time of an extruder, or both may be determined or tracked to schedule cleaning operations.

Some materials begin curing (i.e., solidifying) upon exposure to air or upon mixing. For example, two-part epoxies include an epoxy resin and a hardening agent. After the epoxy resin and the hardening agent are mixed, the mixture begins to cure. When a 3D printing device uses such materials, one or more extruders of the 3D printing device may be cleaned or purged based on a time since mixing the materials (or a time since the materials were exposed to air). For example, if a material that cures after mixing is to be used, the slicer application may generate G-code (or other machine instructions) for mixing the materials. In this example, the slicer application may cause the materials to be mixed based on when the mixture will be needed during printing of the physical model. Additionally, the slicer application may track (e.g., by summing deposition time of all extruders of the 3D printing device) when to schedule a cleaning operation or a purging operation to prevent the mixture from curing in the extruder. In another example, the G-code (or other machine instructions) include instructions for mixing the materials, and the controller of the 3D printing device determines (e.g., based on a timer) when to schedule a cleaning operation or a purging operation to prevent the mixture from curing in the extruder.

The arrangement of the pattern of materials to be deposited to form each layer may be of particular concern for certain materials. For example, certain materials have a tendency to form blobs or other irregularly shaped deposits (sometimes referred to as “kisses”) at the start of a line, the end of a line, or both. A kiss can cause an issue with layer stacking if a portion of the kiss extends above the layer on which it is deposited. A kiss can also, or in the alternative, cause an issue with line arrangement with the layer being printed if the kiss extends beyond the width of its line into an area associated with another line.

Slicing the 3D model in a manner that reduces line starts and stops can reduce the number of kisses in a physical model. The number of line starts and stops can be reduced by configuring the slicer application to use as few lines as possible (or as few lines as practical in view of other settings or goals) for each layer. For example, when a line extends to an edge of the layer, rather than ending the line, lifting the extruder head and moving to a new location for the next line, the slicer application may instruct the 3D printing device to turn the line (e.g., in a U-turn) to continue the line in another direction.

The number of line starts and stops can also be reduced by extending lines between layers. For example, when a first layer is complete, rather than ending the line and lifting the extruder head to begin printing the next layer, the line may be extended to overlay a portion of the first layer to immediately begin printing a portion of the second layer. To illustrate, if the first layer is in a horizontal plane, the material forming the line may be deposited to form a vertical or oblique riser up to a plane of the second layer.

As another example, a first portion of a physical model may be formed by stacking multiple layers of material (e.g., a base layer and one or more additional layers at least partially overlaying the base layer) before moving the extruder head to a different location to form another portion of the base layer. In this example, the multiple layers may be stacked using a single continuous deposition step (e.g., with one start and one stop).

Another method that may be used to reduce kisses is to perform additional steps at the end of a line. For example, when a line ends, rather than ceasing extruder flow and lifting the extruder head, the extruder head may be caused to move backward (e.g., in a direction back along the line that was just deposited) as the extruder flow is stopped, as the extruder head is lifted, or both. Alternately, the extruder flow can be ceased before the line end is reached. After the extruder reaches the line end, the extruder head can be lifted and moved back along the line. By causing the extruder head to backtrack along the line with flow stopped or as flow stops, potential kiss at the line end can be smoothed out.

Yet another method that may be used to reduce kisses is to control extruder flow in a manner that accounts for acceleration of the extruder head. For example, pressure applied to the material being deposited, temperature of the material, filament feed rate, or a combination thereof, may be used to control a flow rate of material from the extruder. The G-code (or other machine instructions) may include settings for the temperature, the pressure, the filament feed rate, or a combination thereof. Additionally, the G-code (or other machine instructions) may include information indicating a velocity (e.g., speed and direction of travel) for movement of the extruder head during deposition. At the beginning of a line, the extruder head is not able to instantaneously achieve the indicated velocity. Rather, due to inertia and/or settings of the 3D printing device, the extruder head velocity gradually increases to the indicated velocity. During this acceleration from a starting velocity to the indicated velocity, if the same extruder flow rate is used as is used when the extruder is at the indicated velocity, more material will be deposited at the beginning of the line than in the remainder of the line.

A similar issue arises at the end of the line. That is, when the extruder approaches the end of a line, the extruder is not able to decelerate from the indicated velocity to an ending velocity (e.g., stopped) instantaneously. Rather, the extruder head velocity gradually decreases to the ending velocity. During this deceleration (i.e., negative acceleration), if the same extruder flow rate is used as is used when the extruder is at the indicated velocity, more material will be deposited at the end of the line than in the remainder of the line. Accordingly, kisses or other line irregularities can be reduced by controlling the flow rate of the extruder based on an acceleration rate of the extruder.

Referring back to FIG. 1, the 3D printing device 101 of FIG. 1 may also include one or more cleaning stations 136, one or more purging stations 137, or both. The cleaning stations 136 may be configured to clean one or more extruder tips, such as the first extruder tip 131, the second extruder tip 133, the Nth extruder tip 135, or a combination thereof. In the examples illustrated herein, each extruder tip 131, 133, 135 may be associated with a corresponding cleaning station, as described further below. However, in other examples, one cleaning station may be used for multiple extruder tips 131, 133, 135. The cleaning station 136 may include a scraper, brushes, or other devices that are used to remove particulate or other foreign matter from the extruder tips 131, 133, 135. In some examples, the cleaning station 136 may be movable relative to the frame 110 or printheads 113-115. For example, the cleaning station 136 may move to the printheads 113-115 to clean the corresponding extruder tip rather than the printheads 113-115 moving to the cleaning station 136.

The purging station 137 may be configured to receive a material from one or more of the printheads 113-115 in order to purge an extruder of the printhead 113-115. For example, the mixture 128 may begin to cure upon mixing. Accordingly, the mixture 128, or a portion thereof, may be purged occasionally to avoid curing of the mixture 128 within the extruder 134 or within the mixer 127. As an example, when the Nth extruder 134 is purged, the Nth printhead 115 may be moved adjacent to or over the purge station 137, and at least a portion of the mixture 128 may be extruded by the extruder 134 into the purge station 137. The purge station 137 may be configured to be removable or replaceable such that after the mixture 128 cures in the purge station 137, the cured mixture 128 can be removed without damaging components of the 3D printing device 101. Other materials used by other extruders may be deposited in the purge station 137 occasionally. For example, the second material 122 may include a paste that begins to cure upon exposure to air. In this example, the second extruder 132 may be purged at the purge station 137 occasionally to avoid clogging the second extruder tip 133, the second extruder 132, or both. Further, the first material 120 may include a filament or other thermoplastic polymer, and the first material 120 may be occasionally purged at the purge station 137 in order to retain desirable properties of the filament, to avoid clogging the extruder 130, or both. When a printhead 113-115 is purged at the purge station 137, the printhead 113-115 may also be cleaned at the cleaning station 136 to prepare the printhead 113-115 for use.

The 3D printing device 101 may also include a memory 142 accessible to the controller 141. The controller 141 may include or have access to one or more timers 144, one or more material counters 145, or both. The material counters 145 may track a quantity of materials in the material containers 119, 121, the component containers 123, 125, a quantity of material in the mixer 127, a quantity of each material deposited to form a physical model of an object, etc. For example, during formation of a first physical model (or a portion of the first physical model), the first material 120 may be deposited by the first printhead 113. During formation of the first physical model, the material counter 145 may track a quantity of the first material 120 that has been deposited. The material counter 145 may also, or in the alternative, track a quantity of material remaining. To illustrate, during formation of the first physical model, while the first material 120 is being deposited, the material counter 145 may track a quantity of the first material 120 that remains in the first material container 119. As another example, when the mixture 128 is deposited to form a portion of the physical model, the material counter 145 may track a quantity of the mixture 128 remaining in the mixer 127. When the quantity of material remaining in the mixer 127 is below a threshold, the controller 141 may cause the mixture 128 to be purged at the purge station 137 and may cause the first component container 123 and the second component container 125 to provide the first component 124 and the second component 126, respectively, to the mixer 127 to generate a new mixture 128. Alternatively, portions of the first component 124 and the second component 126 may be added to an existing mixture 128 in the mixer 127.

The timers 144 may track an amount of time associated with particular activities of the 3D printing device 101. For example, a first timer of the timers 144 may track a time since mixing the mixture 128. The time since mixing the mixture 128 may be used to determine when to purge the mixture 128. For example, the mixture 128 may be purged before a cure time associated with the mixture 128 is reached. The timers 144 may also, or in the alternatively, track how long a particular printhead 113-115 has been idle. For example, during deposition of the first material 120 to form a portion of a physical model, the second material 122 may sit idle in the second printhead 114 or in the second material container 121. Since the second material 122 may begin to cure upon exposure to air, the portion of the second material 122 exposed at the second extruder tip 133 may begin to cure, potentially causing a clog. Accordingly, based on the timers 144 indicating that the second printhead 114 has been sitting idle for a threshold amount of time, a print activity being performed by the 3D printing device 101 may be interrupted to move the second printhead 114 to the cleaning station 136, the purging station 137, or both, to remove a portion of the second material 122 from the second extruder 132 to avoid clogging the second extruder 132.

As another example, the timers 144 may indicate how long a particular extruder has been in use. For example, when the first extruder 130 is being used to deposit a portion of material corresponding to a physical object, the first extruder 130 may be cleaned periodically to remove excess material that occasionally aggregates around the first extruder tip 131. Thus, based upon the timers 144, a 3D printing operation being performed by the 3D printing device 101 may be interrupted, and the first extruder 130 may be moved to the cleaning station 136, to the purging station 137, or both, to clean the first extruder tip 131.

After cleaning of a particular extruder has been performed, the 3D printing operations may resume where they left off. For example, when the first extruder 130 was being used to form a portion of a physical model, and the timer 144 or the material counter 145 indicated cleaning was needed, the print activity may be interrupted, the first extruder 130 may be cleaned, purged or both, and then the printing activity may resume with the first extruder 130 depositing the first material to form a second portion of the physical object. Alternatively, cleaning operations may be scheduled based on the timers 144, the material counter 145, or both, such that the cleaning and/or purging operations occurs between uses of particular extruders. For example, while the first extruder 130 is in use to form a first portion of a physical model, the timers 144, the material counters 145, or both, may reach a value indicating that cleaning is needed. After the first operations being performed by the first extruder 130 is complete (e.g., when an end point associated with the first extruder 130 is reached), the cleaning operation may be performed. The cleaning operation may include cleaning and/or purging the first extruder 130, the second extruder 132, the Nth extruder, or a combination thereof. After the cleaning operation has been performed, printing operations may resume, for example, with the second extruder depositing the second material 122 to form a second portion of the 3D model of the physical object.

In a particular embodiment, the memory 142 includes cleaning and purging control instructions 147. The cleaning and purging control instructions 147 may include instructions (e.g., a cleaning sequence of instructions, a purging sequence of instructions, or both) that facilitate cleaning and purging of the printheads 113-115. For example, when the controller 141 determines that a cleaning operation is to be performed, the controller 141 may interrupt operations being performed at the 3D printing device 101 and execute the cleaning sequence of instructions of the cleaning and purging control instructions 147. As another example, when the controller 141 determines that a purging operation is to be performed, the controller 141 may interrupt operations being performed at the 3D printing device 101 and execute the purging sequence of instructions of the cleaning and purging control instructions 147.

In some implementations, the cleaning and purging control instructions 147 may include thresholds associated with the timers 144, thresholds associated with the material counters 145, or both. To illustrate, the thresholds may include a cure time associated with the mixture 128 or a threshold time that precedes the cure time at which the mixture 128 is to be purged and/or cleaned. As another example, the thresholds may include a downtime limit associated with one or more of the printheads 113-115. The downtime limit may be used to determine whether one or more of the printheads 113-115 should be cleaned based on a downtime of the particular printhead. As another example, the thresholds may include use time thresholds associated with the particular printhead 113-115. The use time thresholds may indicate how long a particular printhead 113-115 can be in use before cleaning and/or purging of the particular printhead 113-115 is needed. As another example, the thresholds may include material quantity thresholds that indicate how much material a particular printhead 113-115 can deposit before cleaning and/or purging of the particular printhead 113-115 is needed. In some implementations, the thresholds may be stored as part of the settings 150.

The cleaning and purging control instructions 147 may also include instructions that cause more than one printhead to be cleaned at a time. For example, when the timers 144 or the material counters 145 indicates that the first printhead 113 is to be cleaned, the cleaning and control instructions 147 may also cause the second printhead 114, the Nth printhead 115, or both, to be cleaned, so that multiple cleaning operations are performed concurrently or sequentially to reduce interruption to print operations.

The memory 142 may also include calibration data 148. The calibration data 148 may include information that indicates relative positions of the printheads 113-115. In the particular example illustrated in FIG. 1, the printheads 113-115 may be independently movable by corresponding actuators 143 or may be movable together by one or more actuators 143. The calibration data 148 may indicate distances between printheads 113-115, extruder tips 131, 133, 135, or both. Additionally, or in the alternative, the calibration data 148 may include information about ramp up speeds associated with the actuators 143. For example, the ramp up speeds may indicate how quickly a particular printhead 113-115 can accelerate from stopped to a specified velocity. As another example, the calibration data 148 may include extrusion rates or deposition rates associated with one or more of the printheads 113-115 based on particular control parameters, such as temperature of the extruder or extruder tip, pressure applied to the extruder or extruder tip, a type of material being deposited, a material feed rate, or a combination thereof. For example, the calibration data 148 may include rheology data based on temperature associated with the first material 120, the second material 122, or the mixture 128. As another example, the calibration data 148 may include rheology data associated with the mixture 128 over time.

The memory 142 may also include test print data 151. The test print data 151 may be used to generate at least a portion of the calibration data 148. For example, the test print data 151 may include commands to generate one or more test print objects using multiple of the printheads 113-115. Positions, orientations, and other information about the test print objects may be measured after a test print is performed and the measurements may be used to adjust the calibration data 148. For example, the 3D printing device 101 may include a measurement device, such as a scanning device (not shown), that automatically measures the test print objects. Alternately, the test print objects may be manually measured and updated calibration data may be provided via a user interface (not shown) or via the computing device 102. The memory 142 may also include end-of-line-technique instructions 149. The end-of-line-technique instructions 149 include instructions that enable formation of line ends having a target width without undesired characteristics, such as bulges and blobs. Thus, the printing device of FIG. 1 may be able to clean extruders based on commands or instructions from a slicer application to increase quality of a print job.

The illustrations of the examples described herein are intended to provide a general understanding of the structure of the various implementations. The illustrations are not intended to serve as a complete description of all of the elements and features of apparatus and systems that utilize the structures or methods described herein. Many other implementations may be apparent to those of skill in the art upon reviewing the disclosure. Other implementations may be utilized and derived from the disclosure, such that structural and logical substitutions and changes may be made without departing from the scope of the disclosure. For example, method operations may be performed in a different order than shown in the figures or one or more method operations may be omitted. Accordingly, the disclosure and the figures are to be regarded as illustrative rather than restrictive.

Moreover, although specific examples have been illustrated and described herein, it should be appreciated that any subsequent arrangement designed to achieve the same or similar results may be substituted for the specific implementations shown. This disclosure is intended to cover any and all subsequent adaptations or variations of various implementations. Combinations of the above implementations, and other implementations not specifically described herein, will be apparent to those of skill in the art upon reviewing the description.

The Abstract of the Disclosure is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims. In addition, in the foregoing Detailed Description, various features may be grouped together or described in a single implementation for the purpose of streamlining the disclosure. Examples described above illustrate but do not limit the disclosure. It should also be understood that numerous modifications and variations are possible in accordance with the principles of the present disclosure. As the following claims reflect, the claimed subject matter may be directed to less than all of the features of any of the disclosed examples. Accordingly, the scope of the disclosure is defined by the following claims and their equivalents. 

What is claimed is:
 1. A method comprising: obtaining first model data specifying a first three-dimensional (3D) model of a first object, the first model data indicating a location of the first 3D model relative to a model space; obtaining second model data specifying a second 3D model of a second object, the second model data indicating a location of the second 3D model relative to the model space, wherein, in the model space, the second 3D model intersects the first 3D model; and processing the first model data and the second model data to generate machine instructions executable by a 3D printing device to generate a physical model of the first object, wherein the physical model defines a void region to receive a physical instance of the second object.
 2. The method of claim 1, wherein the machine instructions do not include instructions to generate a second physical model of the second object.
 3. The method of claim 1, further comprising: receiving tagging data indicating that the second object is a non-printing object; and determining dimensions of the void region based on dimensions of the second object and based on the tagging data.
 4. The method of claim 1, wherein a cross-sectional shape of the void region is determined based on a cross-sectional shape of the second object.
 5. The method of claim 1, further comprising determining dimensions of the void region based on dimensions of the 3D printing device.
 6. The method of claim 1, further comprising determining dimensions of the void region to enable the 3D printing device to deposit material on or over the physical instance of the second object without an extruder of the 3D printing device contacting the physical instance of the second object.
 7. The method of claim 1, wherein generating the machine instructions includes: processing the first model data to generate a sliced model defining a plurality of layers to be deposited to form the physical model of the first object; designating a particular layer of the plurality of layers as an insertion layer; and including a print interrupt command in the machine instructions such that a printing operation is interrupted after the 3D printing device deposits material corresponding to the insertion layer.
 8. The method of claim 7, wherein the print interrupt command, when executed, causes a notification to be sent to another device.
 9. The method of claim 1, wherein the second object corresponds to an electrical component.
 10. The method of claim 1, further comprising obtaining third model data specifying a third 3D model of an electrical interconnect, the third model data indicating a location of the third 3D model relative to the model space, wherein, in the model space, the third 3D model intersects the first 3D model, and wherein the third model data is processed with the first model data and the second model data to generate the machine instructions.
 11. The method of claim 10, wherein a first portion of the physical model corresponds to the first 3D model and a second portion of the physical model corresponds to the third 3D model.
 12. The method of claim 11, wherein the machine instructions are executable to cause the 3D printing device to deposit a first material to form the first portion of the physical model and to deposit a second material to form the second portion of the physical model.
 13. The method of claim 12, wherein processing the first model data, the second model data, and the third model data comprises: generating a sliced model associated with the first model data, the sliced model defining a plurality of layers to be deposited to form the first portion of the physical model; determining that dimensions of the void region are insufficient to allow deposition of the second material within a portion of the physical model that corresponds to the void region; and generating a notification suggesting manual intervention during formation of the physical model.
 14. The method of claim 10, wherein generating the machine instructions includes: processing the first model data to generate a sliced model defining a plurality of layers to be deposited to form the physical model of the first object; designating a particular layer of the plurality of layers as an interconnect deposition layer; and including a command in the machine instructions to deposit material corresponding to at least a portion of the electrical interconnect after deposition of material corresponding to the interconnect deposition layer.
 15. The method of claim 14, wherein the portion of the electrical interconnect is deposited on a layer lower than the interconnect deposition layer.
 16. The method of claim 14, wherein the machine instructions further include a print interrupt command such that a printing operation is interrupted after the 3D printing device deposits material corresponding to at least a portion of the electrical interconnect.
 17. A computer-readable storage device storing instructions that are executable by a processor to cause the processor to perform operations comprising: obtaining first model data specifying a first three-dimensional (3D) model of a first object, the first model data indicating a location of the first 3D model relative to a model space; obtaining second model data specifying a second 3D model of a second object, the second model data indicating a location of the second 3D model relative to the model space, wherein, in the model space, the second 3D model intersects the first 3D model in the model space; and processing the first model data and the second model data to generate machine instructions executable by a 3D printing device to generate a physical model of the first object, wherein the physical model defines a void region to receive a physical instance of the second object.
 18. A computing device comprising: a processor; and a memory accessible to the processor, the memory storing instructions that are executable by the processor to cause the processor to perform operations comprising: obtaining first model data specifying a first three-dimensional (3D) model of a first object, the first model data indicating a location of the first 3D model relative to a model space; obtaining second model data specifying a second 3D model of a second object, the second model data indicating a location of the second 3D model relative to the model space, wherein, in the model space, the second 3D model intersects the first 3D model in the model space; and processing the first model data and the second model data to generate machine instructions executable by a 3D printing device to generate a physical model of the first object, wherein the physical model defines a void region to receive a physical instance of the second object. 